Для добавления кнопки на форму используется элемент управления Command Button, который имеется в стандартном комплекте панели ToolBox. Затем для нее описываются все необходимые свойства, в частности, расположение на экране, видимость, внешний вид и т. д. - аналогично приведенным выше свойствам формы. Однако управляющие кнопки имеют также другие свойства, которые отсутствуют у форм.
Отличительные свойства элемента Command Button
Название | Описание |
Cancel | Является ли элемент кнопкой Cancel |
Default | Выбор кнопки по умолчанию |
DisabledPicture | Рисунок, изображаемый на кнопке, когда она недоступна (свойство Enabled = False), если свойство Style = 1 |
DownPicture | Картинка, выводимая на кнопке, когда она нажата, если свойство Style = 1 |
Style | Стиль, кнопки: 0-Standard (обычный) 1-Graphical(графический) |
Tablndex | Порядковый номер в последовательности перехода (при нажатии Таb) |
TabStop | Присутствие в последовательности перехода |
ToolTipText | Всплывающая подсказка для кнопки |
Реализация определенных действий, предусмотренных для управляющей кнопки, осуществляется после щелчка на ней мышью во время работы приложения. В этом случае выполняется процедура обработки события Click(если она была создана), причем вид кнопки изменяется соответствующим образом, т.е. она изображается нажатой, а затем - отпущенной.
Событие Click также происходит при нажатии клавиши Enter или Пробел,но при этом необходимо, чтобы кнопка имела фокус . В дополнение к сказанному следует отметить что нажатие клавиши Esc эквивалентно событию Click для той кнопки у которой значение свойства Cancel = True, при этом местонахождение фокуса не имеет значения.
При запуске приложения, как правило, один из имеющихся на форме объектов должен быть активным, то есть обрабатывать определенным образом информацию, получаемую от мыши или клавиатуры В этом случае говорят, что данный объект имеет фокус. Например, если на форме находится две управляющие кнопки и одна из них имеет фокус, то нажатие клавиши Enter (или Пробел) приводит к вызову для нее процедуры обработки события Click.
Если управляющая кнопка имеет фокус, то она отображается с выделенной рамкой на форме.
В том случае, когда объект получает фокус, для него выполняется событие GotFocus. С другой стороны, при потере фокуса объектом происходит событие LostFocus..
Получение фокуса объектом может быть реализовано несколькими способами:
- а) При щелчке на нем мышью.
- б) Используя клавиши перехода, а именно Таb или стрелки управления курсором.
- в) Применяемая клавиши доступна.
- г) Выполняя для заданного объекта метод SetFocus.
Однако следует отметить, что объект не может получить
фокус, если у него свойство Visible = False т.е. если он невидим на экране. К аналогичным последствиям приведет и свойство Enabled с тем же значением, т.е. если объект не может отвечать на действия, выполняемые пользователем при работе приложения.
Существует несколько элементов управления, которые не могут получить фокус:
Label(метка), Frame (рамка), Image (изображение). Line (линия) и Shape(Фигура).
К ним также относятся и те элементы, которые не отображаются на форме при выполнении программы, в частности,Common Dialog (стандартный диалог) или Timer (часы).
Как было отмечено выше, объект может подучить фокус с помощью клавиши Таb. Однако при этом он должен находиться в последовательности перехода для данной формы, т.е. среди тех элементов, которые могут получить фокус.
Для определения порядка перехода, в соответствии с которым объекты будут получать фокус при последовательных нажатиях клавиши Tab а также для исключения элемента из последовательности используются свойства Tablndex (порядковый номер для перехода) и TabStop (отсутствие в последовательности).
Объекту, который на форме был создан первым, автоматически устанавливается значение свойства Tablndex=0. Соответственно, каждый последующий элемент получает номер в последовательности на единицу больше. Однако это не относится к тем объектам, которые не могут получить фокус. Для изменения порядка перехода необходимо изменить для определенных объектов значения их свойства Tablndex соответствующим образом.
Если создаваемый на форме элемент может получить фокус, то его свойству TabStop по умолчанию устанавливается значение Тгue. В этом случае, если объект необходимо исключить из последовательности перехода, то для него необходимо установить свойство TabStop = False. Данное действие может быть выполнено как на этапе разработки, так и в программном коде.
Необходимо также отметить, что при изменении свойства Tablndex у одного из элементов, а также в случае его удаления из последовательности, индексы других элементов автоматически перенумеровываются.Использование клавиш доступа при работе с управляющими кнопками также приводит к вызову процедуры обработки события Click для соответствующей кнопки.
Для описания такой клавиши необходимо в названии заголовка элемента (свойство Caption) поставить знак & перед одним из символов, после чего на кнопке он будет изображен с подчеркиванием. Событие Click в этом случае возникает для элемента при нажатии сочетания клавиш Alt-символ.
Создание формы с тремя кнопками: "1", "2". "3".
При нажатии одной из них о произошедшем событии выводится надпись, например: "Кнопка: 1" . Помимо этого, возможен доступ при помощи быстрых клавиш: Аlt-1, Аlt-2, Аlt-З соответственно. Последовательность доступа задается в порядке, обратном нумерации, т.е. "3", "2", "1". Другими словами, при загрузке формы фокус будет у кнопки "3".
Элементы управления и их свойства в приложении "Кнопки"
| | |
Форма | (Name) Border Style Caption StartUpPosition | frmButtons 1 - Fixed Single Кнопки 2 - Center Screen |
Метка | (Name) Caption | lblMessage |
Кнопка 1 | (Name) Caption TabIndex | cmdl &1 2 |
Кнопка 2 | (Name) Caption Tablndex | cmd2 &2 1 |
Кнопка 3 | (Name) Caption Tablndex | cmd3 &3 0 |
Использование кнопок управления и фокуса
Пример приложения кнопка.
Для размещения в форме элемента управления Command Button используется кнопка CommandButton на панели элементов управления. Надпись, размещаемая на кнопке, задается свойством Caption и может содержать не более 255 символов.
Если длина надписи больше ширины кнопки, автоматически осуществляется перенос надписи на следующую строку. В случае, если размер кнопки не позволяет поместить всю надпись, не поместившаяся часть надписи отбрасывается.
Кнопки, размещаемые в форме, используются для выполнения определенной процедуры, связанной с обработкой события click. Это может быть, например, печать данных или проведение определенных вычислений.
После того как кнопка размещена в форме и задано ее название, необходимо определить действия, выполняемые при нажатии на эту кнопку. Для этого дважды щелкните на кнопке и в открывшемся окне редактора кода задайте необходимую процедуру.
Рассмотрим небольшой пример определения процедуры, связанной с обработкой события click. Разместим в форме текстовое поле и две кнопки, нажатие которых будет изменять отображаемую в текстовом поле информацию:
1. Откройте новый проект для создания приложения.
2. Используя кнопку ТехtВох на панели элементов управления, создайте в форме текстовое поле.
3. Разместите в форме две кнопки управления, используя для этого кнопку CommandButton на панели элементов управления.
4. Используя свойство Caption кнопки, задайте ее название.
5. Для изменения шрифта и начертания надписи, воспользуйтесь диалоговым окном Выбор шрифта свойства Font.
6. Чтобы задать процедуру обработки события click, дважды щелкните на кнопке и в открывшемся окне редактора кода создайте процедуру следующего вида:
Private Sub Command1 Click()
Text1.Text = "Текст, задаваемый нажатием кнопки 1"
End Sub
7. Выполняя пункты с 3 по 6, создайте и разместите в форме еще одну кнопку управления. При определении процедуры измените текст, отображаемый в текстовом поле при нажатии второй кнопки.
Запустите форму на выполнение. Нажимая поочередно размещенные в ней кнопки управления, вы можете наблюдать изменение отображаемой в текстовом поле информации.